//从原始类型开始
;(function () {
  type Result1 = 'lys' extends string ? 1 : 2 //1
  type Result2 = 1 extends number ? 1 : 2 //1
  type Result3 = true extends boolean ? 1 : 2 //1
  type Result4 = { name: string } extends object ? 1 : 2
  type Result5 = { name: 'lys' } extends object ? 1 : 2
  type Result6 = [] extends object ? 1 : 2 //1
  //一个基础类型和它们对应的字面量类型必定存在父子类型关系。严格来说，object 出现在这里并不恰当，因为它实际上代表着所有非原始类型的类型，即数组、对象与函数类型，所以这里 Result6 成立的原因即是[]这个字面量类型也可以被认为是 object 的字面量类型。
})()
